import request from '../utils/request'

// 查询商品列表
export function queryProduct({ keyword = '', categoryId = '', brandId = '', pageNum = 1, pageSize = 10 } = {}) {
  // 根据后端分页参数转换规则，前端传入pageNum-1作为实际页码
  const params = { keyword, pageNum: pageNum, pageSize }
  
  // 如果有分类ID，则添加到参数中
  if (categoryId) {
    params.categoryId = categoryId
  }
  
  // 如果有品牌ID，则添加到参数中
  if (brandId) {
    params.brandId = brandId
  }
  
  return request({
    url: '/product/query',
    method: 'get',
    params
  })
}

// 获取商品详情
export function getProduct(id) {
  return request({
    url: `/product/get/${id}`,
    method: 'get'
  })
}

// 添加商品
export function addProduct(data) {
  return request({
    url: '/product/add',
    method: 'post',
    data
  })
}

// 更新商品
export function updateProduct(data) {
  return request({
    url: '/product/update',
    method: 'put',
    data
  })
}

// 删除商品
export function deleteProduct(id) {
  return request({
    url: `/product/delete/${id}`,
    method: 'delete'
  })
}

// 根据分类ID获取相同分类商品数据
export function getSameCategoryProducts(categoryId) {
  return request({
    url: `/product/getSameCategoryProducts/${categoryId}`,
    method: 'get'
  })
}

// 获取商品分类数据
export function getProductCategories() {
  return request({
    url: '/category/all',
    method: 'get'
  })
}

// 获取一级分类数据
export function getTopCategories() {
  return request({
    url: '/category/top',
    method: 'get'
  })
}

// 根据分类ID获取子分类
export function getChildCategories(id) {
  return request({
    url: `/category/child/${id}`,
    method: 'get'
  })
}

// 根据分类ID获取分类详情
export function getCategoryById(categoryId) {
  return request({
    url: `/category/get/${categoryId}`,
    method: 'get'
  })
}

// 添加分类
export function addCategory(data) {
  return request({
    url: '/category/add',
    method: 'post',
    data
  })
}

// 更新分类
export function updateCategory(data) {
  return request({
    url: '/category/update',
    method: 'put',
    data
  })
}

// 删除分类
export function deleteCategory(id) {
  return request({
    url: '/category/delete',
    method: 'delete',
    params: { id }
  })
}